package sy.service;

import java.io.Serializable;
import java.util.List;

import sy.model.SysAccount;

public interface SysAccountServiceI {

	/**
	 * 
	 * @Title      : save 
	 * @Description: TODO
	 * @param sysAccount
	 * @return     : Serializable
	 * @author     :xieyuanqiu
	 * Create Date : 2017年7月24日 下午2:03:20
	 * @throws
	 */
	Serializable save(SysAccount sysAccount);

	/**
	 * 
	 * @Title      : remove 
	 * @Description: TODO
	 * @param sysAccount     : void
	 * @author     :xieyuanqiu
	 * Create Date : 2017年7月24日 下午2:03:32
	 * @throws
	 */
	void remove(String[] ids); 

	/**
	 * 
	 * @Title      : update 
	 * @Description: TODO
	 * @param sysAccount     : void
	 * @author     :xieyuanqiu
	 * Create Date : 2017年7月24日 下午2:03:36
	 * @throws
	 */
	void update(SysAccount sysAccount);
	/**
	 * 
	 * @Title      : list 
	 * @Description: TODO
	 * @return     : List<SysAccount>
	 * @author     :xieyuanqiu
	 * Create Date : 2017年7月24日 下午2:36:17
	 * @throws
	 */
	List<SysAccount> list();
	/**
	 * 
	 * @Title      : getSysAccountById 
	 * @Description: TODO
	 * @param id
	 * @return     : SysAccount
	 * @author     :xieyuanqiu
	 * Create Date : 2017年7月25日 上午9:19:59
	 * @throws
	 */
	SysAccount getSysAccountById(String id);
	/**
	 * 
	 * @Title      : listSysAccountByKey 
	 * @Description: TODO
	 * @param key
	 * @return     : List<SysAccount>
	 * @author     :xieyuanqiu
	 * Create Date : 2017年7月25日 上午9:20:02
	 * @throws
	 */
	List<SysAccount> listSysAccountByKey(String key);
	
	/**
	 * 
	 * @Title      : login 
	 * @Description: TODO
	 * @param account password
	 * @return     : Object
	 * @author     :wjy
	 * Create Date : 2017年7月26日
	 * @throws
	 */
	public Object login(String account, String password);

	/**
	 * 
	 * @Title      : findByName 
	 * @Description: TODO
	 * @param telephone
	 * @return     : Object
	 * @author     :wjy
	 * Create Date : 2017年7月26日
	 * @throws
	 */
	public Object findByName(String telephone);
	/**
	 * 根据token判断获取登录时间，判断该token是否过期；
	 * 当登录时间为null时，表示已在app端退出登录
	 * @Title: getSysAccountByToken
	 * @Description: TODO
	 * @param: @param token
	 * @param: @return     
	 * @return: SysAccount     
	 * @author:  xieyuanqiu
	 * @date: 2017年8月28日 上午11:19:41
	 * @throws
	 */
	SysAccount getSysAccountByToken(String token);
	/**
	 * app端退出登录时，把loginTime设为null
	 * @Title: updateLoginTime
	 * @Description: TODO
	 * @param:      
	 * @return: void     
	 * @author:  xieyuanqiu
	 * @date: 2017年8月28日 上午11:20:43
	 * @throws
	 */
	void updateLoginTime(String token);
	/**
	 * 
	 * @Title: modifyPassword
	 * @Description: TODO
	 * @param: @param telephone
	 * @param: @param password     
	 * @return: void     
	 * @author:  xieyuanqiu
	 * @date: 2017年8月31日 上午9:09:06
	 * @throws
	 */
	void modifyPassword(String telephone, String password);
}
